package methoddemo;

import java.util.Scanner;

/**
 * 在唱歌比赛中，有6名评委给选手打分，分数范围是[0 - 100]之间的整数
 * 选手的最后得分为：去掉最高分，最低分后的4个评委的平均分，请完成上述过程并计算出选手的得分
 */
public class methodTest12 {
    public static void main(String[] args) {
        //分析：
        //1.定义一个数组也用来存储6名评委的打分
        int[] scoreArr = getScore();

        //2.求出数组中的最大值
        int max = getMax(scoreArr);
        //3.求出数组的最小值
        int min = getMin(scoreArr);
        //4.求出数组中6个分数的总和
        int sum = getSum(scoreArr);
        //5.（总和 - 最大值 -最小值 ）/ 4
        int avg = (sum - max - min) / (scoreArr.length - 2);
        //打印最终结果
        System.out.println("选手最终的评分为：" + avg);
    }

    //将打出的分数一一存入数组当中
    public static int[] getScore() {
        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length; ) {
            System.out.println("请打分");
            int score = sc.nextInt();
            if (score >= 0 && score <= 100) {
                arr[i] = score;
                i++;
            } else System.out.println("评出的分数有误，请重新评分，当前的i为" + i);
        }
        return arr;

    }

    //求数组中的最大值
    public static int getMax(int[] scoreArr) {
        int max = scoreArr[0];
        for (int i = 1; i < scoreArr.length; i++) {
            if (scoreArr[i] > max) {
                max = scoreArr[i];
            }

        }
        return max;
    }


    //求数组中的最小值
    public static int getMin(int[] scoreArr) {
        int min = scoreArr[0];
        for (int i = 1; i < scoreArr.length; i++) {
            if (scoreArr[i] < min) {
                min = scoreArr[i];
            }

        }
        return min;
    }

    //求数组中数组的总和
    public static int getSum(int[] scoreArr) {
        int sum = 0;
        for (int i = 0; i < scoreArr.length; i++) {
            sum = sum + scoreArr[i];
        }
        return sum;
    }
}
